package com.betterjr.modules.order;

import java.util.List;
import java.util.Map;

import com.betterjr.modules.order.entity.ScfInvoiceDOItem;

public interface IScfInvoiceService {
    /**
     * 订单发票信息录入功能
     */
    public String webAddInvoice(Map<String, Object> anMap, String anInvoiceIds, String anFileList);

    /**
     *  订单发票分页查询 
     */
    public String webQueryInvoiceList(Map<String, Object> anMap, String anFlag, int anPageNum, int anPageSize);

    /**
     * 发票信息编辑
     */
    public String webSaveModifyInvoice(Map<String, Object> anMap, String anInvoiceIds, String anFileList);

    /**
     * 发票详情录入
     */
    public String webAddInvoiceItem(Map<String, Object> anMap);

    /**
     * 发票信息删除
     */
    public String webSaveDeleteInvoice(Long anId);

    /**
     * 查询出具保理方案下的发票,用于完善资料
     */
    public String webQueryIncompletedInvoice(Map<String, Object> anMap, String anFlag, int anPageNum, int anPageSize);

    public String webAddInvoiceDO(Map<String, Object> anAnMap, String anFileList, boolean anConfirmFlag,
            List<ScfInvoiceDOItem> anInvoiceItemList);

    public String webSaveModifyInvoiceDO(Map<String, Object> anAnMap, String anFileList, boolean anConfirmFlag,
            List<ScfInvoiceDOItem> anList);

    public String webSaveAnnulInvoice(String anRefNo, String anVersion);

    public String webSaveAuditInvoiceByRefNoVersion(String anRefNo, String anVersion);

    public String webQueryIneffectiveInvoice(Map<String, Object> anAnMap, String anFlag, int anPageNum, int anPageSize,
            boolean anIsAudit);

    public String webQueryEffectiveInvoice(Map<String, Object> anAnMap, String anFlag, int anPageNum, int anPageSize,
            boolean anIsCust);

    public String webFindInvoiceDO(String anRefNo, String anVersion);

    public String webQueryRecycleInvoice(Map<String, Object> anAnMap, String anFlag, int anPageNum, int anPageSize);

    public String webSaveAnnulEffectiveInvoice(String anRefNo, String anVersion);

    /**
     * 
     * @Title: webQueryNotUserIneffectiveInvoice 
     * @Description: 分页查询已登记，生效且未使用发票 
     * @param anPageNum 页码
     * @param anPageSize  页面大小
     * @param anFlag    是否统计总数
     * @param custNo    供应商编号   
     * @return 分页查询已登记，生效且未使用发票列表
     * @throws 
     * @author xuzx
     * @date 2017年11月16日 下午4:37:25
     */
    public String webQueryNotUserIneffectiveInvoice(int anPageNum, int anPageSize, int anFlag, Long custNo);

}
